package src.Aula08.Ex2;

import java.util.ArrayList;

public class Ementa {
    private String nome, local;
    // private ArrayList<Prato> pratosDomingo, pratosSegunda, pratosTerca,
    // pratosQuarta, pratosQuinta, pratosSexta, pratosSabado;
    ArrayList<ArrayList<Prato>> pratos;

    public Ementa(String nome, String local) {
        this.nome = nome;
        this.local = local;
        this.pratos = new ArrayList<ArrayList<Prato>>();
        for (int i = 1; i <= 7; i++)
            this.pratos.add(new ArrayList<Prato>());
    }

    @Override
    public String toString() {
        String s = "";
        for (int i = 0; i <= 6; i++) {
            for (Prato prato : pratos.get(i))
                s += prato + ", dia " + DiaSemana.getEnum(i) + "\n";
        }

        return s;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((local == null) ? 0 : local.hashCode());
        result = prime * result + ((nome == null) ? 0 : nome.hashCode());
        result = prime * result + ((pratos == null) ? 0 : pratos.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Ementa other = (Ementa) obj;
        if (local == null) {
            if (other.local != null)
                return false;
        } else if (!local.equals(other.local))
            return false;
        if (nome == null) {
            if (other.nome != null)
                return false;
        } else if (!nome.equals(other.nome))
            return false;
        if (pratos == null) {
            if (other.pratos != null)
                return false;
        } else if (!pratos.equals(other.pratos))
            return false;
        return true;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getLocal() {
        return local;
    }

    public void setLocal(String local) {
        this.local = local;
    }

    public void addPrato(Prato prato, DiaSemana diaSemana) {
        int index = DiaSemana.indexOf(diaSemana);
        pratos.get(index).add(prato);
    }

}
